Powertrain calibration is a term used in the automotive industry to denote the process of modifying ECU (Electronic Control Unit) software constants to adapt an electronic control system to new requirements (emissions, safety, etc), a new plant system (the engine or transmission) or any combination thereof. Generally to perform powertrain calibration, automotive companies purchase commercially available calibration systems from companies like Accurate Technologies Inc. (ATI), dSPACE GmbH, ETAS GmbH or Vector GmbH. In order to support the modification of software constants, without the need to continuously FLASH the ECU whenever a constant stored in FLASH memory is changed, one of several methods is generally used. The methods currently used require additional hardware like a M5 memory emulator from Accurate Technologies Inc. or special source code support in the underlying source code for the ECU.
In modern automotive electronic control units, there exist a number of embedded control algorithms that control different aspects of the vehicle. For instance, there may be an algorithm that controls the amount of fuel injected into the cylinders and a different control algorithm that is responsible for shifting gears in the transmission. These algorithms are developed in a way that they can be used on many different vehicle types, engines, and transmission for a variety of markets with different emission and safety requirements. During real-time execution, each of these algorithms use what is termed “calibrations” or “parameters” to adapt itself to the vehicle and requirements that it is controlling.
IC2 or InCuruit2 is a commonly employed technique for calibrating parameters in an ECU. Prior to starting a calibration session, the IC2 technique requires the user to select the desired parameters for calibration. In operation, a calibration tool commands the ECU to stop using the calibration values stored in FLASH (reference calibration) and begin referencing new values that are stored in RAM (working calibration). In addition, the calibration tool must flash the modified pointer table values every time the desired list of calibration parameters change. Exemplary calibration tools includes the VISION calibration tool commercially available from Accurate Technologies and the INCA calibration tool commercially available from ETAS GmbH.
More specifically, this calibration technique is based on a pointer table embedded in the software. For each calibration parameter, there is an entry in the point table. When the ECU is in a reference mode, all calibration parameters are read directly from FLASH. When the ECU is in a working mode, the ECU software first looks up an address for a calibration parameter in the pointer table and then uses this address to access the calibration data. The calibration tool is responsible for setting the appropriate address in the calibration pointer table. If a calibration parameter is active (meaning its an adjustable value located in RAM), the calibration tool must set the pointer entry in the pointer table for the parameter to point to RAM rather than FLASH. Calibration parameters that are not active have their associated pointer entries point to the values in FLASH. To enable this approach, suitable instructions are embedded in the ECU software.
Therefore, it is desirable to provide a technique that enables calibration of read only calibration parameters without any modifications or access to the underlying ECU source code.